package file;

import java.io.File;
import java.io.FileFilter;

/**
 * 获取一个目录中满足我们指定要求的所有子项
 */
public class ListFilesDemo2 {
    public static void main(String[] args) {
        /*
            获取当前目录中的所有文本文件
            过滤条件:凡是目录中的子项以".txt"结尾的都是符合要求的
         */
        File dir = new File(".");
        if (dir.isDirectory()){
            //因为一个类/接口在某个特定的情况下只被调用一次，那么我们可以用匿名内部类的形式来创建并调用这个类/接口...
            //匿名内部类的形式创建过滤器
            FileFilter fileFilter = new FileFilter() {
                @Override
                public boolean accept(File file) {
                    //获取经过过滤的元素名字
                    String name = file.getName();
                    //如果以".txt"结尾则接受
                    return name.endsWith(".txt");
                }
            };
            //Filter:过滤器
            File[] subs = dir.listFiles(fileFilter);
            System.out.println("一共有"+subs.length+"个元素");
        }
    }
}
